\chapter{Coste}
	En este capítulo veremos lo que teóricamente cuesta el proyecto, en términos de tiempo, dinero y personal. Mediremos este coste basándonos en el
	modelo COCOMO, muy utilizado en el ámbito de la ingeniería de software. Antes de exponer el cálculo del coste del proyecto, introduciremos brevemente
	el modelo COCOMO\cite{cocomo}.
	 
	\section{El modelo COCOMO}
		El Modelo Constructivo de Costes (o COCOMO, por su acrónimo del inglés COnstructive COst MOdel) es un modelo matemático de base empírica 
		utilizado para estimación de costes de software. Incluye tres submodelos, cada uno ofrece un nivel de detalle y aproximación, cada vez mayor, 
		a medida que avanza el proceso de desarrollo del software: Básico, Intermedio y Detallado.\\

		Este modelo fue desarrollado por Barry W. Boehm a finales de los años 70 y comienzos de los 80, exponiéndolo detalladamente en su libro 
		"Software Engineering Economics" (Prentice-Hall, 1981). Pertenece a la categoría de modelos de subestimaciones basados en estimaciones 
		matemáticas. Está orientado a la magnitud del producto final, midiendo el "tamaño" del proyecto, en líneas de código principalmente.\\
				
		La ecuaciones que se utilizan en los tres modelos son:

		\begin{itemize2}
			\item $E = a(Kl)b * m(X)$, en persona-mes
			\item $Tdev = c(E)d$, en meses
			\item $P = E / Tdev$, en personas
		\end{itemize2}

		donde:

		\begin{itemize2}
			\item $E$ es el esfuerzo requerido por el proyecto, en persona-mes
			\item $Tdev$ es el tiempo requerido por el proyecto, en meses
			\item $P$ es el número de personas requerido por el proyecto
			\item $a$, $b$, $c$ y $d$ son constantes con valores definidos en una tabla, según cada submodelo
			\item $Kl$ es la cantidad de líneas de código, en miles.
			\item $m(X)$ Es un multiplicador que depende de 15 atributos.
		\end{itemize2}
				
		A su vez, cada submodelo también se divide en modos que representan el tipo de proyecto, y puede ser:

		\begin{itemize}
			\item \textbf{Modo Orgánico}: un pequeño grupo de programadores experimentados desarrollan software en un entorno familiar. El tamaño del 
			software varía desde unos pocos miles de líneas (tamaño pequeño) a unas decenas de miles (medio).
			\item \textbf{Modo Semilibre} o \textbf{Semiencajado}: corresponde a un esquema intermedio entre el orgánico y el rígido; el grupo de 
			desarrollo puede incluir una mezcla de personas experimentadas y no experimentadas.
			\item \textbf{Modo Rígido} o \textbf{Empotrado}: el proyecto tiene fuertes restricciones, que pueden estar relacionadas con la 
			funcionalidad y/o pueden ser técnicas. El problema a resolver es único y es difícil basarse en la experiencia, puesto que puede no haberla.
		\end{itemize}
				
		\subsection*{Modelo Básico de COCOMO}
			El modelo Básico de COCOMO se utiliza para obtener una primera aproximación rápida del esfuerzo, y hace uso de la siguiente tabla de 
			constantes para calcular distintos aspectos de costes:

			\begin{table}[H]
				\centering
				\begin{tabular}{|l|c|c|c|c|}
					\hline
					\rowcolor{LightOrange} \textbf{Modo} & \textbf{a} & \textbf{b} & \textbf{c} & \textbf{d} \\
					\hline
					\textbf{Orgánico} & 2,40 & 1,05 & 2,50 & 0,38 \\
					\hline
					\textbf{Semilibre} & 3,00 & 1,12 & 2,50 & 0,35 \\
					\hline
					\textbf{Rígido} & 3,60 & 1,20 & 2,50 & 0,32 \\
					\hline
				\end{tabular}
				\caption{Modelo Básico de COCOMO}
			\end{table}
					
			Estos valores son para las fórmulas:

			\begin{itemize2}
				\item Personas por mes necesarias para llevar adelante el proyecto: $MM = a*(Kl^b)$
				\item Tiempo de desarrollo del proyecto (en meses): $TDEV = c*(MM^d)$
				\item Personas necesarias para realizar el proyecto: $CosteH = MM/TDEV$
				\item Coste total (mensual) del proyecto: \textit{CosteM = CosteH * Salario medio entre los programadores y analistas}
			\end{itemize2}
				
			Se puede observar que a medida que aumenta la complejidad del proyecto (modo), las constantes aumentan de 2.4 a 3.6, que corresponde a un 
			incremento del esfuerzo del personal. Hay que utilizar con mucho cuidado el modelo básico puesto que se obvian muchas características del 
			entorno.\\
				
	\section{Coste del proyecto}
		Para estimar el coste del proyecto Predesys, se ha empleado el modelo Básico de COCOMO en el modo Orgánico, por ser un proyecto con menos
		de 10000 líneas de código y unipersonal.
				
		\begin{itemize2}
			\item \textbf{Personas por mes necesarias:}\\
			$MM = a*(Kl^b) = 2.4*(7.2^{1.05})$ = \textbf{19 personas/mes}\\
					
			\item \textbf{Tiempo de desarrollo del proyecto (en meses):}\\
			$TDEV = c*(MM^d) = 2.5*(19^{0.38})$ = 7,65 $\approx$ \textbf{8 meses}\\
					
			\item \textbf{Personas necesarias para realizar el proyecto:}\\
			$CosteH = MM/TDEV = 19/7.65$ = 2.48 $\approx$ \textbf{3 personas}\\
					
			\item \textbf{Coste total (mensual) del proyecto:}\\
			\textit{CosteM = CosteH * Salario medio entre los programadores y analistas = 3 * 1000} = \textbf{3000 euros}\\
					
			\item \textbf{Coste final del proyecto:}\\
			$CosteF = CosteM * TDEV = 3000 * 8$ = \textbf{24000 euros}
		\end{itemize2}
